AML scAtlas¶

Integrated Zhang et al Dataset: Assessment of Batch Effects¶

Some individual studies were analysed to ascertain the presence of batch effects within a single study. Two high performing batch correction methods were also tested on these datasets.

Environment Setup¶

In [1]:
import os
import numpy as np
import pandas as pd
import scanpy as sc
import scanpy.external as sce
import anndata as ad
from anndata import AnnData
import matplotlib.pyplot as plt
from scipy import stats
import scvi
from rich import print
from scib_metrics.benchmark import Benchmarker
from scvi.model.utils import mde
from scvi_colab import install
import scanorama

sc.settings.verbosity = 3
sc.logging.print_header()
sc.settings.set_figure_params(dpi=80, facecolor='white')

if not os.path.exists("outs"):
    os.makedirs("outs")
if not os.path.exists("plots"):
    os.makedirs("plots")

combined_file = 'outs/zhang_filtered.h5ad'
corrected_file = 'outs/zhang_batch_correct.h5ad'
Global seed set to 0
/Users/jwhittle/opt/anaconda3/envs/scvi-env/lib/python3.9/site-packages/flax/struct.py:132: FutureWarning: jax.tree_util.register_keypaths is deprecated, and will be removed in a future release. Please use `register_pytree_with_keys()` instead.
  jax.tree_util.register_keypaths(data_clz, keypaths)
/Users/jwhittle/opt/anaconda3/envs/scvi-env/lib/python3.9/site-packages/flax/struct.py:132: FutureWarning: jax.tree_util.register_keypaths is deprecated, and will be removed in a future release. Please use `register_pytree_with_keys()` instead.
  jax.tree_util.register_keypaths(data_clz, keypaths)
scanpy==1.9.3 anndata==0.8.0 umap==0.5.3 numpy==1.23.5 scipy==1.9.1 pandas==1.5.3 scikit-learn==1.2.2 statsmodels==0.14.0 python-igraph==0.10.4 louvain==0.8.0 pynndescent==0.5.8
In [2]:
import rpy2
%load_ext rpy2.ipython
from rpy2.robjects.packages import importr
# import R tools
base = importr('base')
utils = importr('utils')
In [3]:
%%R
suppressMessages(library(kBET))

Create Combined AnnData Object¶

In [4]:
# Read in data files - with cells already filtered
amlP105 = sc.read_h5ad("../amlP105/outs/AMLP105_cell_filtered.h5ad")
amlP106 = sc.read_h5ad("../amlP106/outs/AMLP106_cell_filtered.h5ad")
amlP108 = sc.read_h5ad("../amlP108/outs/AMLP108_cell_filtered.h5ad")
amlP114 = sc.read_h5ad("../amlP114/outs/AMLP114_cell_filtered.h5ad")
amlP115 = sc.read_h5ad("../amlP115/outs/AMLP115_cell_filtered.h5ad")
amlP116 = sc.read_h5ad("../amlP116/outs/AMLP116_cell_filtered.h5ad")
amlP117 = sc.read_h5ad("../amlP117/outs/AMLP117_cell_filtered.h5ad")
amlP118 = sc.read_h5ad("../amlP118/outs/AMLP118_cell_filtered.h5ad")
amlP119 = sc.read_h5ad("../amlP119/outs/AMLP119_cell_filtered.h5ad")
amlP120 = sc.read_h5ad("../amlP120/outs/AMlP120_cell_filtered.h5ad")
amlP122 = sc.read_h5ad("../amlP122/outs/AMLP122_cell_filtered.h5ad")
amlP123 = sc.read_h5ad("../amlP123/outs/AMLP123_cell_filtered.h5ad")
amlP124 = sc.read_h5ad("../amlP124/outs/AMLP124_cell_filtered.h5ad")
data = [amlP105,amlP106,amlP108,amlP114,amlP115,amlP116,amlP117,amlP118,amlP119,
        amlP120,amlP122,amlP123,amlP124]
In [5]:
# Concetenate files
adata = ad.concat(data, merge="same")
# Delete individual datasets to save space
del(amlP105,amlP106,amlP108,amlP114,amlP115,amlP116,amlP117,amlP118,amlP119,
    amlP120,amlP122,amlP123,amlP124)

Initial QC¶

In [6]:
# Annotate mitochondrial/ribosomal/hb genes
adata.var['mt'] = adata.var_names.str.startswith('MT-') 
adata.var['ribo'] = adata.var_names.str.startswith(("RPS","RPL"))
adata.var['hb'] = adata.var_names.str.contains(("^HB[^(P)]"))

# Run QC function
sc.pp.calculate_qc_metrics(adata, qc_vars=['mt','ribo', 'hb'], percent_top=None, log1p=False, inplace=True)

# Add the total counts per cell
adata.obs['n_counts'] = adata.X.sum(axis=1).A1

Plotting QC¶

In [7]:
sc.pl.violin(adata, ['n_genes_by_counts', 'total_counts', 'pct_counts_mt','pct_counts_ribo', 'pct_counts_hb'],
             jitter=0.4, groupby = 'sample', rotation= 45)
In [8]:
sc.pl.scatter(adata, x='total_counts', y='pct_counts_mt')
In [9]:
sc.pl.scatter(adata, x='total_counts', y='n_genes_by_counts', color='pct_counts_mt')

Perform Gene Filtering¶

In [10]:
sc.pp.filter_genes(adata, min_cells=10)
print(adata.n_obs, adata.n_vars)
filtered out 11582 genes that are detected in less than 10 cells
75648 21956
In [11]:
sc.pl.highest_expr_genes(adata, n_top=20)
normalizing counts per cell
    finished (0:00:01)
In [12]:
# MALAT1 Filtering
malat1 = adata.var_names.str.startswith('MALAT1')
keep = np.invert(malat1)
adata = adata[:,keep]
print(adata.n_obs, adata.n_vars)
75648 21955
In [13]:
sc.pl.highest_expr_genes(adata, n_top=20)
/Users/jwhittle/opt/anaconda3/envs/scvi-env/lib/python3.9/site-packages/scanpy/preprocessing/_normalization.py:170: UserWarning: Received a view of an AnnData. Making a copy.
  view_to_actual(adata)
normalizing counts per cell
    finished (0:00:01)

Annotate Patient Sex¶

In [14]:
# Using biomart to identify relevant genes
annot = sc.queries.biomart_annotations(
        "hsapiens",
        ["ensembl_gene_id", "external_gene_name", "start_position", "end_position", "chromosome_name"],
    ).set_index("external_gene_name")
In [15]:
# Find percentage chrY
chrY_genes = adata.var_names.intersection(annot.index[annot.chromosome_name == "Y"])
adata.obs['percent_chrY'] = np.sum(
    adata[:, chrY_genes].X, axis=1) / np.sum(adata.X, axis=1) * 100
In [16]:
# XIST Proportion
adata.obs["XIST-counts"] = adata.X[:,adata.var_names.str.match('XIST')].toarray()
In [17]:
sc.pl.violin(adata, ["XIST-counts", "percent_chrY"], groupby = 'sample', 
             rotation=45, jitter=0.4)

Pre-Processing Steps Complete!¶

In [18]:
adata.layers["counts"] = adata.X.copy()
adata.write_h5ad(combined_file)

Batch Effect Assessment¶

Dimensionality Reduction¶

In [19]:
# Log normalization
sc.pp.normalize_total(adata, target_sum=1e4)
sc.pp.log1p(adata)
normalizing counts per cell
    finished (0:00:01)
In [20]:
# Get highly variable genes
sc.pp.highly_variable_genes(
    adata,
    flavor="seurat_v3",
    n_top_genes=2000,
    layer="counts",
    batch_key="sample",
    subset=True,
)
If you pass `n_top_genes`, all cutoffs are ignored.
extracting highly variable genes
--> added
    'highly_variable', boolean vector (adata.var)
    'highly_variable_rank', float vector (adata.var)
    'means', float vector (adata.var)
    'variances', float vector (adata.var)
    'variances_norm', float vector (adata.var)
In [21]:
# PCA
sc.tl.pca(adata, svd_solver='arpack')
sc.pl.pca_variance_ratio(adata, log=True)
computing PCA
    on highly variable genes
    with n_comps=50
    finished (0:00:05)
In [22]:
# Calculate neighbours graph
sc.pp.neighbors(adata, n_pcs = 30, n_neighbors = 20)
# UMAP
sc.tl.umap(adata)
sc.pl.umap(adata, color='sample', title='Zhang 2023: Uncorrected')
computing neighbors
    using 'X_pca' with n_pcs = 30
OMP: Info #276: omp_set_nested routine deprecated, please use omp_set_max_active_levels instead.
    finished: added to `.uns['neighbors']`
    `.obsp['distances']`, distances for each pair of neighbors
    `.obsp['connectivities']`, weighted adjacency matrix (0:01:27)
computing UMAP
    finished: added
    'X_umap', UMAP coordinates (adata.obsm) (0:00:43)
/Users/jwhittle/opt/anaconda3/envs/scvi-env/lib/python3.9/site-packages/scanpy/plotting/_tools/scatterplots.py:392: UserWarning: No data for colormapping provided via 'c'. Parameters 'cmap' will be ignored
  cax = scatter(
In [23]:
sc.pl.umap(adata, color=["CD34","CD14",'IL7R'])

KBET¶

In [24]:
adata_ss = sc.pp.subsample(adata, fraction=0.2, copy=True)
In [25]:
# Make Expression Matrix
count = pd.DataFrame(adata_ss.X.A, columns=adata_ss.var.index, index = adata_ss.obs.index).T

# Get batch ids
batch = adata_ss.obs["sample"]
In [26]:
%%R -i count,batch

batch <- as.factor(batch)
batch.estimate <- kBET(count, batch)

Harmony¶

In [27]:
sce.pp.harmony_integrate(adata, 'sample')
2024-10-14 22:06:07,975 - harmonypy - INFO - Computing initial centroids with sklearn.KMeans...
2024-10-14 22:06:23,324 - harmonypy - INFO - sklearn.KMeans initialization complete.
2024-10-14 22:06:23,502 - harmonypy - INFO - Iteration 1 of 10
2024-10-14 22:06:37,751 - harmonypy - INFO - Iteration 2 of 10
2024-10-14 22:06:51,844 - harmonypy - INFO - Iteration 3 of 10
2024-10-14 22:07:05,849 - harmonypy - INFO - Iteration 4 of 10
2024-10-14 22:07:21,499 - harmonypy - INFO - Iteration 5 of 10
2024-10-14 22:07:31,877 - harmonypy - INFO - Converged after 5 iterations
In [28]:
sc.pp.neighbors(adata, use_rep="X_pca_harmony")
sc.tl.umap(adata)
sc.pl.umap(adata, color='sample', title='Zhang 2023: Harmony')
sc.pl.umap(adata, color=["CD34","CD14",'IL7R'])
computing neighbors
    finished: added to `.uns['neighbors']`
    `.obsp['distances']`, distances for each pair of neighbors
    `.obsp['connectivities']`, weighted adjacency matrix (0:00:04)
computing UMAP
    finished: added
    'X_umap', UMAP coordinates (adata.obsm) (0:00:39)
/Users/jwhittle/opt/anaconda3/envs/scvi-env/lib/python3.9/site-packages/scanpy/plotting/_tools/scatterplots.py:392: UserWarning: No data for colormapping provided via 'c'. Parameters 'cmap' will be ignored
  cax = scatter(

scVI¶

In [29]:
scvi.model.SCVI.setup_anndata(adata, layer="counts", batch_key="sample")
In [30]:
vae = scvi.model.SCVI(adata, n_layers=2, n_latent=30, gene_likelihood="nb")
In [31]:
vae.train()
GPU available: True (mps), used: False
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
HPU available: False, using: 0 HPUs
/Users/jwhittle/opt/anaconda3/envs/scvi-env/lib/python3.9/site-packages/pytorch_lightning/trainer/setup.py:201: UserWarning: MPS available but not used. Set `accelerator` and `devices` using `Trainer(accelerator='mps', devices=1)`.
  rank_zero_warn(
Epoch 106/106: 100%|███████| 106/106 [16:35<00:00,  9.38s/it, loss=707, v_num=1]
`Trainer.fit` stopped: `max_epochs=106` reached.
Epoch 106/106: 100%|███████| 106/106 [16:35<00:00,  9.40s/it, loss=707, v_num=1]
In [32]:
adata.obsm["X_scVI"] = vae.get_latent_representation()
In [33]:
sc.pp.neighbors(adata, use_rep="X_scVI")
sc.tl.umap(adata)
sc.pl.umap(adata, color='sample', title='Zhang 2023: SCVI')
sc.pl.umap(adata, color=["CD34","CD14",'IL7R'])
computing neighbors
    finished: added to `.uns['neighbors']`
    `.obsp['distances']`, distances for each pair of neighbors
    `.obsp['connectivities']`, weighted adjacency matrix (0:00:04)
computing UMAP
    finished: added
    'X_umap', UMAP coordinates (adata.obsm) (0:00:36)
/Users/jwhittle/opt/anaconda3/envs/scvi-env/lib/python3.9/site-packages/scanpy/plotting/_tools/scatterplots.py:392: UserWarning: No data for colormapping provided via 'c'. Parameters 'cmap' will be ignored
  cax = scatter(

Batch Correction Complete¶

In [34]:
adata.write_h5ad(corrected_file)

Reproducibility: Environment Configuration¶

In [35]:
!conda list
# packages in environment at /Users/jwhittle/opt/anaconda3:
#
# Name                    Version                   Build  Channel
_ipyw_jlab_nb_ext_conf    0.1.0            py39hca03da5_1  
absl-py                   1.4.0                    pypi_0    pypi
adjusttext                1.2.0                    pypi_0    pypi
aiohttp                   3.8.4                    pypi_0    pypi
aiosignal                 1.3.1                    pypi_0    pypi
alabaster                 0.7.12             pyhd3eb1b0_0  
anaconda                  2022.10                  py39_0  
anaconda-client           1.11.0           py39hca03da5_0  
anaconda-navigator        2.3.1            py39hca03da5_0  
anaconda-project          0.11.1           py39hca03da5_0  
anndata                   0.8.0                    pypi_0    pypi
annoy                     1.17.1                   pypi_0    pypi
anyio                     3.5.0            py39hca03da5_0  
appdirs                   1.4.4              pyhd3eb1b0_0  
appnope                   0.1.2           py39hca03da5_1001  
appscript                 1.1.2            py39h1a28f6b_0  
arboreto                  0.1.6                    pypi_0    pypi
argon2-cffi               21.3.0             pyhd3eb1b0_0  
argon2-cffi-bindings      21.2.0           py39h1a28f6b_0  
arpack                    3.7.0                h58ebc17_2    conda-forge
array-api-compat          1.4                pyhd8ed1ab_0    conda-forge
arrow                     1.2.3                    pypi_0    pypi
arviz                     0.17.1                   pypi_0    pypi
astroid                   2.11.7           py39hca03da5_0  
astropy                   5.1              py39heec5a64_0  
asttokens                 2.0.5              pyhd3eb1b0_0  
async-timeout             4.0.2                    pypi_0    pypi
attrs                     21.4.0             pyhd3eb1b0_0  
automat                   20.2.0                     py_0  
babel                     2.9.1              pyhd3eb1b0_0  
backcall                  0.2.0              pyhd3eb1b0_0  
backoff                   2.2.1                    pypi_0    pypi
backports                 1.1                pyhd3eb1b0_0  
backports.functools_lru_cache 1.6.4              pyhd3eb1b0_0  
backports.tempfile        1.0                pyhd3eb1b0_1  
backports.weakref         1.0.post1                  py_1  
bash-kernel               0.9.1                    pypi_0    pypi
bcrypt                    3.2.0            py39h1a28f6b_1  
beautifulsoup4            4.11.1           py39hca03da5_0  
biopython                 1.81                     pypi_0    pypi
biothings-client          0.2.6                    pypi_0    pypi
bitarray                  2.5.1            py39h1a28f6b_0  
bkcharts                  0.2              py39hca03da5_1  
blas                      1.0                    openblas  
bleach                    4.1.0              pyhd3eb1b0_0  
blessed                   1.20.0                   pypi_0    pypi
blosc                     1.21.0               h98b2900_1  
bokeh                     2.4.3            py39hca03da5_0  
boltons                   23.0.0                   pypi_0    pypi
boto3                     1.24.28          py39hca03da5_0  
botocore                  1.27.28          py39hca03da5_0  
bottleneck                1.3.5            py39heec5a64_0  
brotli                    1.0.9                h1a28f6b_7  
brotli-bin                1.0.9                h1a28f6b_7  
brotlipy                  0.7.0           py39h1a28f6b_1002  
brunsli                   0.1                  hc377ac9_1  
bzip2                     1.0.8                h620ffc9_4  
c-ares                    1.18.1               h1a28f6b_0  
ca-certificates           2022.07.19           hca03da5_0  
cached-property           1.5.2                    pypi_0    pypi
cctools                   949.0.1             hc179dcd_25  
cctools_osx-arm64         949.0.1             h332cad3_25  
celltypist                1.3.0                    pypi_0    pypi
certifi                   2022.9.24        py39hca03da5_0  
cffi                      1.15.1           py39h22df2f2_0  
cfitsio                   3.470                h7f6438f_7  
chardet                   4.0.0           py39hca03da5_1003  
charls                    2.2.0                hc377ac9_0  
charset-normalizer        2.0.4              pyhd3eb1b0_0  
chex                      0.1.6                    pypi_0    pypi
click                     8.0.4            py39hca03da5_0  
cloudpickle               2.0.0              pyhd3eb1b0_0  
clyent                    1.2.1                    pypi_0    pypi
cmake                     3.26.3                   pypi_0    pypi
colorama                  0.4.5            py39hca03da5_0  
colorcet                  3.0.0            py39hca03da5_0  
conda                     22.9.0           py39hca03da5_0  
conda-build               3.22.0           py39hca03da5_0  
conda-content-trust       0.1.3            py39hca03da5_0  
conda-env                 2.6.0                hca03da5_1  
conda-pack                0.7.1              pyhd8ed1ab_0    conda-forge
conda-package-handling    2.2.0              pyh38be061_0    conda-forge
conda-package-streaming   0.9.0              pyhd8ed1ab_0    conda-forge
conda-repo-cli            1.0.20           py39hca03da5_0  
conda-token               0.4.0              pyhd3eb1b0_0  
conda-verify              3.4.2                      py_1  
constantly                15.1.0             pyh2b92418_0  
contextlib2               21.6.0                   pypi_0    pypi
contourpy                 1.3.0                    pypi_0    pypi
croniter                  1.4.1                    pypi_0    pypi
cryptography              37.0.1           py39h834c97f_0  
cssselect                 1.1.0              pyhd3eb1b0_0  
ctxcore                   0.2.0                    pypi_0    pypi
curl                      7.84.0               h1a28f6b_0  
custom-inherit            2.4.1                    pypi_0    pypi
cycler                    0.11.0             pyhd3eb1b0_0  
cython                    0.29.32          py39hc377ac9_0  
cytoolz                   0.11.0           py39h1a28f6b_0  
dask                      2022.7.0         py39hca03da5_0  
dask-core                 2022.7.0         py39hca03da5_0  
dataclasses               0.8                pyh6d0b6a4_7  
datashader                0.14.1           py39hca03da5_0  
datashape                 0.5.4            py39hca03da5_1  
dateutils                 0.6.12                   pypi_0    pypi
debugpy                   1.5.1            py39hc377ac9_0  
decorator                 5.1.1              pyhd3eb1b0_0  
decoupler                 1.8.0                    pypi_0    pypi
deepdiff                  6.3.1                    pypi_0    pypi
defusedxml                0.7.1              pyhd3eb1b0_0  
dill                      0.3.4              pyhd3eb1b0_0  
diskcache                 5.4.0                    pypi_0    pypi
distributed               2022.7.0         py39hca03da5_0  
dm-tree                   0.1.8                    pypi_0    pypi
docrep                    0.3.2                    pypi_0    pypi
docutils                  0.18.1           py39hca03da5_3  
entrypoints               0.4              py39hca03da5_0  
equinox                   0.11.7                   pypi_0    pypi
et_xmlfile                1.1.0            py39hca03da5_0  
etils                     1.1.0                    pypi_0    pypi
exceptiongroup            1.2.0              pyhd8ed1ab_0    conda-forge
executing                 0.8.3              pyhd3eb1b0_0  
fastapi                   0.100.0                  pypi_0    pypi
fcsparser                 0.2.6                    pypi_0    pypi
fftw                      3.3.9                h1a28f6b_1  
filelock                  3.6.0              pyhd3eb1b0_0  
flask                     1.1.2              pyhd3eb1b0_0  
flax                      0.6.7                    pypi_0    pypi
fonttools                 4.25.0             pyhd3eb1b0_0  
freetype                  2.11.0               h1192e45_0  
frozendict                2.3.8                    pypi_0    pypi
frozenlist                1.3.3                    pypi_0    pypi
fsspec                    2022.7.1         py39hca03da5_0  
future                    0.18.2           py39hca03da5_1  
gdown                     4.7.1                    pypi_0    pypi
genomepy                  0.15.0                   pypi_0    pypi
gensim                    4.1.2            py39hc377ac9_0  
gettext                   0.21.0               h826f4ad_0  
giflib                    5.2.1                h1a28f6b_0  
glib                      2.69.1               h98b2900_1  
glob2                     0.7                pyhd3eb1b0_0  
glpk                      4.65              h6d7a090_1004    conda-forge
gmp                       6.2.1                hc377ac9_3  
gmpy2                     2.1.2            py39h8c48613_0  
greenlet                  1.1.0            py39hc377ac9_0  
gst-plugins-base          1.14.1               h313beb8_1  
gstreamer                 1.14.1               h80987f9_1  
h11                       0.14.0                   pypi_0    pypi
h5netcdf                  1.3.0                    pypi_0    pypi
h5py                      3.7.0            py39h7fe8675_0  
hdf5                      1.12.1               h160e8cb_2  
heapdict                  1.0.1              pyhd3eb1b0_0  
holoviews                 1.15.0           py39hca03da5_0  
huggingface-hub           0.13.2                   pypi_0    pypi
hvplot                    0.8.0            py39hca03da5_0  
hyperlink                 21.0.0             pyhd3eb1b0_0  
icu                       68.1                 hc377ac9_0  
idna                      3.3                pyhd3eb1b0_0  
igraph                    0.10.4                   pypi_0    pypi
imagecodecs               2021.8.26        py39h0dccdf0_1  
imageio                   2.19.3           py39hca03da5_0  
imagesize                 1.4.1            py39hca03da5_0  
importlib-metadata        4.11.3           py39hca03da5_0  
importlib-resources       5.12.0                   pypi_0    pypi
importlib_metadata        4.11.3               hd3eb1b0_0  
incremental               21.3.0             pyhd3eb1b0_0  
iniconfig                 1.1.1              pyhd3eb1b0_0  
inquirer                  3.1.3                    pypi_0    pypi
install                   1.3.5                    pypi_0    pypi
intake                    0.6.5              pyhd3eb1b0_0  
interlap                  0.2.7                    pypi_0    pypi
ipykernel                 6.15.2           py39hca03da5_0  
ipython                   8.4.0            py39hca03da5_0  
ipython_genutils          0.2.0              pyhd3eb1b0_1  
ipywidgets                7.6.5              pyhd3eb1b0_1  
isort                     5.9.3              pyhd3eb1b0_0  
itemadapter               0.3.0              pyhd3eb1b0_0  
itemloaders               1.0.4              pyhd3eb1b0_1  
itsdangerous              2.0.1              pyhd3eb1b0_0  
jax                       0.4.30                   pypi_0    pypi
jaxlib                    0.4.30                   pypi_0    pypi
jaxopt                    0.8.3                    pypi_0    pypi
jaxtyping                 0.2.34                   pypi_0    pypi
jdcal                     1.4.1              pyhd3eb1b0_0  
jedi                      0.18.1           py39hca03da5_1  
jinja2                    2.11.3             pyhd3eb1b0_0  
jmespath                  0.10.0             pyhd3eb1b0_0  
joblib                    1.1.0              pyhd3eb1b0_0  
jpeg                      9e                   h1a28f6b_0  
jq                        1.6                  h1a28f6b_1  
json5                     0.9.6              pyhd3eb1b0_0  
jsonschema                4.16.0           py39hca03da5_0  
jupyter_client            7.3.4            py39hca03da5_0  
jupyter_console           6.4.3              pyhd3eb1b0_0  
jupyter_core              4.11.1           py39hca03da5_0  
jupyter_server            1.18.1           py39hca03da5_0  
jupyterlab                3.4.4            py39hca03da5_0  
jupyterlab_pygments       0.1.2                      py_0  
jupyterlab_server         2.10.3             pyhd3eb1b0_1  
jupyterlab_widgets        1.0.0              pyhd3eb1b0_1  
jxrlib                    1.1                  h1a28f6b_2  
kiwisolver                1.4.2            py39hc377ac9_0  
krb5                      1.19.2               h3b8d789_0  
lazy-object-proxy         1.6.0            py39h1a28f6b_0  
lcms2                     2.12                 hba8e193_0  
ld64                      530                 hb29bf3f_25  
ld64_osx-arm64            530                 h001ce53_25  
ldid                      2.1.2                h64d1936_2  
leidenalg                 0.9.1                    pypi_0    pypi
lerc                      3.0                  hc377ac9_0  
libaec                    1.0.4                hc377ac9_1  
libarchive                3.6.1                he3a3bf9_0  
libblas                   3.9.0           16_osxarm64_openblas    conda-forge
libbrotlicommon           1.0.9                h1a28f6b_7  
libbrotlidec              1.0.9                h1a28f6b_7  
libbrotlienc              1.0.9                h1a28f6b_7  
libclang                  12.0.0          default_hc321e17_4  
libcurl                   7.84.0               hc6d1d07_0  
libcxx                    14.0.6               h848a8c0_0  
libdeflate                1.8                  h1a28f6b_5  
libedit                   3.1.20210910         h1a28f6b_0  
libev                     4.33                 h1a28f6b_1  
libffi                    3.4.2                hc377ac9_4  
libgfortran               5.0.0           11_2_0_he6877d6_26  
libgfortran5              11.2.0              he6877d6_26  
libiconv                  1.16                 h1a28f6b_2  
libidn2                   2.3.1                h1a28f6b_0  
liblapack                 3.9.0           16_osxarm64_openblas    conda-forge
liblief                   0.11.5               hc377ac9_1  
libllvm11                 11.1.0               h12f7ac0_5  
libllvm12                 12.0.1               h93073aa_2    conda-forge
libllvm14                 14.0.6               h4b41812_0  
libnghttp2                1.46.0               h95c9599_0  
libopenblas               0.3.21               h269037a_0  
libpng                    1.6.37               hb8d0fd4_0  
libpq                     12.9                 h65cfe13_3  
libsodium                 1.0.18               h1a28f6b_0  
libssh2                   1.10.0               hf27765b_0  
libtiff                   4.4.0                had003b8_0  
libunistring              0.9.10               h1a28f6b_0  
libwebp                   1.2.2                h68602c7_0  
libwebp-base              1.2.2                h1a28f6b_0  
libxml2                   2.9.14               h8c5e841_0  
libxslt                   1.1.35               h9833966_0  
libzopfli                 1.0.3                hc377ac9_0  
lightning                 2.0.5                    pypi_0    pypi
lightning-cloud           0.5.37                   pypi_0    pypi
lightning-utilities       0.8.0                    pypi_0    pypi
lineax                    0.0.5                    pypi_0    pypi
llvm-openmp               14.0.6               hc6e5704_0  
llvmlite                  0.43.0                   pypi_0    pypi
locket                    1.0.0            py39hca03da5_0  
loguru                    0.6.0                    pypi_0    pypi
loompy                    3.0.7                    pypi_0    pypi
lxml                      4.9.1            py39h2fae87d_0  
lz4                       3.1.3            py39h1a28f6b_0  
lz4-c                     1.9.3                hc377ac9_0  
lzo                       2.10                 h1a28f6b_2  
markdown                  3.3.4            py39hca03da5_0  
markdown-it-py            2.2.0                    pypi_0    pypi
markupsafe                2.0.1            py39h1a28f6b_0  
matplotlib                3.9.2                    pypi_0    pypi
matplotlib-inline         0.1.6            py39hca03da5_0  
mccabe                    0.7.0              pyhd3eb1b0_0  
mdurl                     0.1.2                    pypi_0    pypi
metis                     5.1.1                h965bd2d_2    conda-forge
mistune                   0.8.4           py39h1a28f6b_1000  
mizani                    0.11.4                   pypi_0    pypi
ml-collections            0.1.1                    pypi_0    pypi
ml-dtypes                 0.2.0                    pypi_0    pypi
mock                      4.0.3              pyhd3eb1b0_0  
mpc                       1.1.0                h8c48613_1  
mpfr                      4.0.2                h695f6f0_1  
mpmath                    1.2.1            py39hca03da5_0  
msgpack-python            1.0.3            py39h525c30c_0  
mudata                    0.2.1                    pypi_0    pypi
multidict                 6.0.4                    pypi_0    pypi
multipledispatch          0.6.0            py39hca03da5_0  
multiprocessing-on-dill   3.5.0a4                  pypi_0    pypi
munkres                   1.1.4                      py_0  
muon                      0.1.5                    pypi_0    pypi
mygene                    3.2.2                    pypi_0    pypi
mysql-connector-python    8.0.32                   pypi_0    pypi
natsort                   8.3.1                    pypi_0    pypi
navigator-updater         0.3.0            py39hca03da5_0  
nbclassic                 0.3.5              pyhd3eb1b0_0  
nbclient                  0.5.13           py39hca03da5_0  
nbconvert                 6.4.4            py39hca03da5_0  
nbformat                  5.4.0                    pypi_0    pypi
ncurses                   6.3                  h1a28f6b_3  
nest-asyncio              1.5.5            py39hca03da5_0  
networkx                  2.8.4            py39hca03da5_0  
newick                    1.0.0                    pypi_0    pypi
nltk                      3.7                pyhd3eb1b0_0  
nomkl                     3.0                           0  
norns                     0.1.6                    pypi_0    pypi
nose                      1.3.7           pyhd3eb1b0_1008  
notebook                  6.4.12           py39hca03da5_0  
nspr                      4.35                 hb7217d7_0    conda-forge
nss                       3.74                 h142855e_0  
numba                     0.60.0                   pypi_0    pypi
numexpr                   2.8.3            py39h144ceef_0  
numpy                     1.24.3                   pypi_0    pypi
numpy-groupies            0.9.20                   pypi_0    pypi
numpydoc                  1.4.0            py39hca03da5_0  
numpyro                   0.12.1                   pypi_0    pypi
olefile                   0.46               pyhd3eb1b0_0  
oniguruma                 6.9.7.1              h1a28f6b_0  
openblas                  0.3.21               hca03da5_0  
openblas-devel            0.3.21               hca03da5_0  
openjpeg                  2.3.0                h7a6adac_2  
openpyxl                  3.0.10           py39h1a28f6b_0  
openssl                   1.1.1q               h1a28f6b_0  
opt-einsum                3.3.0                    pypi_0    pypi
optax                     0.1.4                    pypi_0    pypi
orbax                     0.1.4                    pypi_0    pypi
ordered-set               4.1.0                    pypi_0    pypi
ott-jax                   0.4.8                    pypi_0    pypi
packaging                 21.3               pyhd3eb1b0_0  
palantir                  1.2                      pypi_0    pypi
pandas                    2.2.2                    pypi_0    pypi
pandoc                    3.1.3                hce30654_0    conda-forge
pandocfilters             1.5.0              pyhd3eb1b0_0  
panel                     0.13.1           py39hca03da5_0  
param                     1.12.0             pyhd3eb1b0_0  
parsel                    1.6.0            py39hca03da5_0  
parso                     0.8.3              pyhd3eb1b0_0  
partd                     1.2.0              pyhd3eb1b0_1  
patch                     2.7.6             h1a28f6b_1001  
pathlib                   1.0.1                      py_1    conda-forge
patsy                     0.5.6                    pypi_0    pypi
pcre                      8.45                 hbdafb3b_0    conda-forge
pep8                      1.7.1            py39hca03da5_1  
pertpy                    0.6.0                    pypi_0    pypi
pexpect                   4.8.0              pyhd3eb1b0_3  
phenograph                1.5.7                    pypi_0    pypi
pickleshare               0.7.5           pyhd3eb1b0_1003  
pillow                    9.2.0            py39h4d1bdd5_1  
pip                       22.2.2           py39hca03da5_0  
pkginfo                   1.8.2              pyhd3eb1b0_0  
platformdirs              2.5.2            py39hca03da5_0  
plotly                    5.9.0            py39hca03da5_0  
plotnine                  0.13.6                   pypi_0    pypi
pluggy                    1.0.0            py39hca03da5_1  
ply                       3.11             py39hca03da5_0  
progressbar2              4.2.0                    pypi_0    pypi
prometheus_client         0.14.1           py39hca03da5_0  
prompt-toolkit            3.0.20             pyhd3eb1b0_0  
prompt_toolkit            3.0.20               hd3eb1b0_0  
protego                   0.1.16                     py_0  
protobuf                  3.20.3                   pypi_0    pypi
psutil                    5.9.0            py39h1a28f6b_0  
ptyprocess                0.7.0              pyhd3eb1b0_2  
pure_eval                 0.2.2              pyhd3eb1b0_0  
py                        1.11.0             pyhd3eb1b0_0  
py-lief                   0.11.5           py39hc377ac9_1  
pyarrow                   13.0.0                   pypi_0    pypi
pyasn1                    0.4.8              pyhd3eb1b0_0  
pyasn1-modules            0.2.8                      py_0  
pycodestyle               2.8.0              pyhd3eb1b0_0  
pycosat                   0.6.3            py39h1a28f6b_0  
pycparser                 2.21               pyhd3eb1b0_0  
pyct                      0.4.8            py39hca03da5_1  
pycurl                    7.45.1           py39hf27765b_0  
pydantic                  1.10.11                  pypi_0    pypi
pydispatcher              2.0.5            py39hca03da5_2  
pyerfa                    2.0.0            py39h1a28f6b_0  
pyfaidx                   0.7.2.1                  pypi_0    pypi
pyflakes                  2.4.0              pyhd3eb1b0_0  
pygam                     0.9.0                    pypi_0    pypi
pygments                  2.14.0                   pypi_0    pypi
pyhamcrest                2.0.2              pyhd3eb1b0_2  
pyjwt                     2.8.0              pyhd8ed1ab_0    conda-forge
pylint                    2.14.5           py39hca03da5_0  
pymde                     0.1.18                   pypi_0    pypi
pynndescent               0.5.8                    pypi_0    pypi
pyodbc                    4.0.34           py39hc377ac9_0  
pyomo                     6.8.0                    pypi_0    pypi
pyopenssl                 22.0.0             pyhd3eb1b0_0  
pyparsing                 3.0.9            py39hca03da5_0  
pypng                     0.20220715.0             pypi_0    pypi
pyqt                      5.15.7           py39hc377ac9_0  
pyqt5-sip                 12.11.0          py39hc377ac9_0  
pyro-api                  0.1.2                    pypi_0    pypi
pyro-ppl                  1.8.4                    pypi_0    pypi
pyrsistent                0.18.0           py39h1a28f6b_0  
pysam                     0.22.0                   pypi_0    pypi
pysocks                   1.7.1            py39hca03da5_0  
pytables                  3.7.0            py39h701507b_0  
pytest                    7.1.2            py39hca03da5_0  
python                    3.9.13               hbdb9e5c_1  
python-dateutil           2.8.2              pyhd3eb1b0_0  
python-editor             1.0.4                    pypi_0    pypi
python-fastjsonschema     2.16.2           py39hca03da5_0  
python-igraph             0.10.4                   pypi_0    pypi
python-libarchive-c       2.9                pyhd3eb1b0_1  
python-multipart          0.0.6                    pypi_0    pypi
python-snappy             0.6.0            py39hc377ac9_0  
python-utils              3.5.2                    pypi_0    pypi
python.app                3                py39h1a28f6b_0  
python_abi                3.9                      2_cp39    conda-forge
pytorch-lightning         1.9.4                    pypi_0    pypi
pytz                      2022.1           py39hca03da5_0  
pytz-deprecation-shim     0.1.0.post0              pypi_0    pypi
pyviz_comms               2.0.2              pyhd3eb1b0_0  
pywavelets                1.3.0            py39h1a28f6b_0  
pyyaml                    6.0              py39h1a28f6b_0  
pyzmq                     23.2.0           py39hc377ac9_0  
qt-main                   5.15.2               ha2d02b5_7  
qt-webengine              5.15.9               h2903aaf_7  
qtpy                      2.4.1              pyhd8ed1ab_0    conda-forge
qtwebkit                  5.212                h0f11f3c_4  
queuelib                  1.5.0            py39hca03da5_0  
readchar                  4.0.5                    pypi_0    pypi
readline                  8.1.2                h1a28f6b_1  
regex                     2022.7.9         py39h1a28f6b_0  
reportlab                 4.2.2                    pypi_0    pypi
requests                  2.28.1           py39hca03da5_0  
requests-file             1.5.1              pyhd3eb1b0_0  
rich                      13.3.2                   pypi_0    pypi
rope                      0.22.0             pyhd3eb1b0_0  
rpy2                      3.5.10                   pypi_0    pypi
ruamel_yaml               0.15.100         py39h1a28f6b_0  
s3transfer                0.6.0            py39hca03da5_0  
scanpy                    1.9.3              pyhd8ed1ab_0    conda-forge
scarches                  0.5.9                    pypi_0    pypi
schpl                     1.0.3                    pypi_0    pypi
scikit-image              0.19.2           py39h9197a36_0  
scikit-learn              1.1.1            py39hc377ac9_0  
scikit-misc               0.1.4                    pypi_0    pypi
scipy                     1.10.1                   pypi_0    pypi
scrapy                    2.6.2            py39hca03da5_0  
scrublet                  0.2.3                    pypi_0    pypi
scvi-colab                0.12.0                   pypi_0    pypi
scvi-tools                1.0.2                    pypi_0    pypi
seaborn                   0.11.2             pyhd3eb1b0_0  
send2trash                1.8.0              pyhd3eb1b0_1  
service_identity          18.1.0             pyhd3eb1b0_1  
session-info              1.0.0              pyhd8ed1ab_0    conda-forge
setuptools                63.4.1           py39hca03da5_0  
sip                       6.6.2            py39hc377ac9_0  
six                       1.16.0             pyhd3eb1b0_1  
smart_open                5.2.1            py39hca03da5_0  
snappy                    1.1.9                hc377ac9_0  
sniffio                   1.2.0            py39hca03da5_1  
snowballstemmer           2.2.0              pyhd3eb1b0_0  
sortedcollections         2.1.0              pyhd3eb1b0_0  
sortedcontainers          2.4.0              pyhd3eb1b0_0  
soupsieve                 2.3.1              pyhd3eb1b0_0  
sparse                    0.14.0                   pypi_0    pypi
sparsecca                 0.3.1                    pypi_0    pypi
sphinx                    5.0.2            py39hca03da5_0  
sphinxcontrib-applehelp   1.0.2              pyhd3eb1b0_0  
sphinxcontrib-devhelp     1.0.2              pyhd3eb1b0_0  
sphinxcontrib-htmlhelp    2.0.0              pyhd3eb1b0_0  
sphinxcontrib-jsmath      1.0.1              pyhd3eb1b0_0  
sphinxcontrib-qthelp      1.0.3              pyhd3eb1b0_0  
sphinxcontrib-serializinghtml 1.1.5              pyhd3eb1b0_0  
sqlalchemy                1.4.39           py39h1a28f6b_0  
sqlite                    3.39.3               h1058600_0  
stack_data                0.2.0              pyhd3eb1b0_0  
starlette                 0.27.0                   pypi_0    pypi
starsessions              1.3.0                    pypi_0    pypi
statsmodels               0.14.3                   pypi_0    pypi
stdlib-list               0.8.0              pyhd8ed1ab_0    conda-forge
suitesparse               5.10.1               h9223979_2  
sympy                     1.10.1           py39hca03da5_0  
tabulate                  0.8.10           py39hca03da5_0  
tapi                      1100.0.11            h8754e6a_1  
tbb                       2021.5.0             h525c30c_0  
tbb4py                    2021.5.0         py39h525c30c_0  
tblib                     1.7.0              pyhd3eb1b0_0  
tenacity                  8.0.1            py39hca03da5_1  
tensorstore               0.1.33                   pypi_0    pypi
terminado                 0.13.1           py39hca03da5_0  
testpath                  0.6.0            py39hca03da5_0  
texttable                 1.7.0              pyhd8ed1ab_0    conda-forge
threadpoolctl             2.2.0              pyh0d69192_0  
tifffile                  2021.7.2           pyhd3eb1b0_2  
tk                        8.6.12               hb8d0fd4_0  
tldextract                3.2.0              pyhd3eb1b0_0  
toml                      0.10.2             pyhd3eb1b0_0  
tomli                     2.0.1            py39hca03da5_0  
tomlkit                   0.11.1           py39hca03da5_0  
toolz                     0.11.2             pyhd3eb1b0_0  
torch                     2.0.0                    pypi_0    pypi
torchaudio                2.0.1                    pypi_0    pypi
torchmetrics              0.11.4                   pypi_0    pypi
torchvision               0.15.1                   pypi_0    pypi
tornado                   6.1              py39h1a28f6b_0  
toyplot                   1.0.3                    pypi_0    pypi
toytree                   3.0.5                    pypi_0    pypi
tqdm                      4.66.5                   pypi_0    pypi
traitlets                 5.9.0                    pypi_0    pypi
twisted                   22.2.0           py39h1a28f6b_1  
typeguard                 2.13.3                   pypi_0    pypi
typing-extensions         4.12.2                   pypi_0    pypi
tzdata                    2022.7                   pypi_0    pypi
tzlocal                   4.2                      pypi_0    pypi
ujson                     5.4.0            py39hc377ac9_0  
umap-learn                0.5.4            py39hca03da5_0  
unixodbc                  2.3.11               h1a28f6b_0  
urllib3                   1.26.11          py39hca03da5_0  
uvicorn                   0.22.0                   pypi_0    pypi
w3lib                     1.21.0             pyhd3eb1b0_0  
wcwidth                   0.2.5              pyhd3eb1b0_0  
webencodings              0.5.1            py39hca03da5_1  
websocket-client          0.58.0           py39hca03da5_4  
websockets                11.0.3                   pypi_0    pypi
werkzeug                  2.0.3              pyhd3eb1b0_0  
wget                      1.21.3               hc6d1d07_0  
wheel                     0.37.1             pyhd3eb1b0_0  
widgetsnbextension        3.5.2            py39hca03da5_0  
wrapt                     1.14.1           py39h1a28f6b_0  
xarray                    2023.6.0                 pypi_0    pypi
xarray-einstats           0.7.0                    pypi_0    pypi
xlrd                      2.0.1              pyhd3eb1b0_0  
xlsxwriter                3.0.3              pyhd3eb1b0_0  
xlwings                   0.27.15          py39hca03da5_0  
xz                        5.2.6                h1a28f6b_0  
yaml                      0.2.5                h1a28f6b_0  
yarl                      1.8.2                    pypi_0    pypi
zeromq                    4.3.4                hc377ac9_0  
zfp                       0.5.5                hc377ac9_6  
zict                      2.1.0            py39hca03da5_0  
zipp                      3.8.0            py39hca03da5_0  
zlib                      1.2.12               h5a0b063_3  
zope                      1.0              py39hca03da5_1  
zope.interface            5.4.0            py39h1a28f6b_0  
zstandard                 0.19.0           py39h80987f9_0  
zstd                      1.5.2                h8574219_0